草庐IT

c++ - 如何根据 Qt C++ 中的主题更改图标?如果可用的主题是深色或浅色

我有一个基于Qt的文本编辑器程序。它的默认主题是深色的。我想添加一个功能,当用户为switchtheme()选择QAction时,主题应该切换为亮色,图标也应该根据亮/暗变化。在我的qrc文件中,我设置了如下结构:/images|-->/theme_dark/|-->/theme_light/两个目录中的图标文件名保持相同。voidMainWindow::switchTheme(constQString&themeName){//themeNamewillbe"light"or"dark"QStringimage_path=":/images/theme_"+themeName+"/"

c++ - QGraphicsPixmapItem的Qt更新像素图

我正在使用QGraphicsPixmapItem在显示器上显示图像。现在,我希望能够即时更新此图像,但我似乎遇到了一些问题。这是头文件:classEnemy_View:publicQGraphicsPixmapItem{public:Enemy_View(QGraphicsScene&myScene);voiddefeat();private:QGraphicsScene&scene;QPixmapimage;}这是cpp文件Enemy_View::Enemy_View(QGraphicsScene&myScene):image{":/images/alive.png"},scene(

c++ - 在构造函数的初始化列表中使用 "this"对 Qt 特别危险吗?

我需要关于“这个”主题的可靠信息:classMyClass,publicQWidget{public:MyClass(QWidget*parent=NULL):QWidget(parent),mpAnotherWidget(newQWidget(this)){};private:QWidget*mpAnotherWidget;};当然,在构造器或初始化列表中调用虚函数不是一个好主意。问题是:这段代码可以吗mpAnotherWidget(newQWidget(this))导致未定义的行为?!如果是这样:为什么?如果可以,请引用您的消息来源!谢谢! 最佳答案

c++ - Ubuntu 14.04 - Qt 版本选择

我错误地将我的qt版本从4.8.5更新到4.8.6。这是安装pythonanaconda的结果。但是我正在做一个需要qt4.8.5的项目。运行qmake-v显示:$qmake-vQMakeversion2.01aUsingQtversion4.8.6inhome//anaconda/lib如何切换到我以前的qt版本(安装在默认目录,即/usr/...)?qtchooser列出了以下选项:$qtchooser-list-versions45defaultqt4-i386-linux-gnuqt4-x86_64-linux-gnuqt4qt5-x86_64-linux-gnuqt5但是尝试

c++ - Debian 上的 Qt5 示例包

如何在DebianJessie上单独获取包含Qt5示例的软件包?我有带Qt5的QtCreator,可以开发Qt应用程序,但是我没有示例。当我搜索Qt时,SynapticPackageManager出现了太多的匹配项。我认为最接近我想要的是qtbase5-examples,但我不能100%确定这是否是我必须下载的。 最佳答案 这些文件由qtbase5-examples提供,这是正确的。但是,文件没有安装在明显的路径中,这取决于体系结构:/usr/lib/x86_64-linux-gnu/qt5/examples/[amd64]/usr

c++ - 如何在Qt中设置一个应用程序图标

我在尝试为我的QT应用程序设置图标时遇到了一些问题。图标名为“room.ico”,与源文件位于同一目录。代码如下:#include#includeintmain(intargc,char*argv[]){QApplicationapp(argc,argv);QWidgetfenetre;fenetre.setWindowIcon(QIcon("room.ico"));//Nothinghappensfenetre.setWindowTitle("Heloo");fenetre.show();returnapp.exec();}我尝试在.pro文件中添加win32:RC_ICONS+=r

c++ - 读取输入时Qt控制台应用程序问题

当我尝试从Qt控制台应用程序获取输入时,程序未按预期运行。以下按预期工作:#include#includeQTextStreamcout(stdout);QTextStreamcin(stdin);intmain(){QStringmsg("Helloworld!");cout输出:Helloworld!但是一旦我添加,...intmain(){QStringmsg("Helloworld!");cout输出:Helloworld!被显示,但程序在显示输入文本的提示之前等待输入,而不是先显示提示然后读取输入。输入的文本与输入时的提示一起(之后)显示。我已经尝试解决这个问题几个小时了,但

c++ - 指向数据结构中元素的指针安全吗? (C++ 与 QT)

我正在开发的软件具有以下结构:ClassA:QHashClassB:QHashClassC:QMap>(thisisbecauseIneedtohavetheitemsordered)QHash>(thisexistssoIcanaccessanitemviaid)我的问题是,将要编辑的指针指向数据结构中的元素是否安全。我在尝试调试时遇到错误,其中调试器无法在断点处停止,并且出现SIGTRAP错误,但我不确定这是否与内存问题有关。举一个更好的例子,与我正在开发的软件相关,我有一个QHash表示视频列表。用户一次只能编辑一个视频,所以我有一个指向当前视频的指针,它是哈希中的一个Take。

c++ - 如何禁用QT中的最大化按钮?

我想禁用Qt中的最大化按钮我试过了setWindowFlags((windowFlags()|Qt::CustomizeWindowHint)&~Qt::WindowMaximizeButtonHint); 最佳答案 要关闭默认窗口上的最大化按钮,请在您的Ui文件中设置窗口的最大大小。例如:当您运行程序时,您会注意到“最大化”按钮是灰色的。如果您希望您的窗口始终只有一个尺寸并且不让用户控制更改它,请将几何尺寸和最小尺寸设置为这些相同的值。 关于c++-如何禁用QT中的最大化按钮?,我们在

c++ - 在没有类声明的情况下使用 Qt 的 Q_DECLARE_FLAGS 和 Q_DECLARE_OPERATORS_FOR_FLAGS

我有以下枚举声明,我想利用Qt中的QFlags支持来实现额外的类型安全:namespacessp{enumVisualAttribute{AttrBrushColor=0x001,AttrBrushTexture=0x002,AttrPenCapStyle=0x004,AttrPenColor=0x008,AttrPenJoinStyle=0x010,AttrPenPattern=0x020,AttrPenScalable=0x040,AttrPenWidth=0x080,AttrSymbolColor=0x100,AttrTextColor=0x200,AttrTextFontFam